// CodeGear C++Builder
// Copyright (c) 1995, 2015 by Embarcadero Technologies, Inc.
// All rights reserved

// (DO NOT EDIT: machine generated header) 'ocv.comp.ImageOperation.pas' rev: 30.00 (Windows)

#ifndef Ocv_Comp_ImageoperationHPP
#define Ocv_Comp_ImageoperationHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member 
#pragma pack(push,8)
#include <System.hpp>
#include <SysInit.hpp>
#include <Winapi.Windows.hpp>
#include <Vcl.Graphics.hpp>
#include <System.SysUtils.hpp>
#include <System.Classes.hpp>
#include <System.SyncObjs.hpp>
#include <System.Types.hpp>
#include <System.ZLib.hpp>
#include <ocv.comp.Types.hpp>
#include <ocv.comp.Proc.hpp>
#include <ocv.objdetect_c.hpp>
#include <ocv.core.types_c.hpp>
#include <ocv.imgproc.types_c.hpp>
#include <ocv.editor.hpp>
#include <System.UITypes.hpp>

//-- user supplied -----------------------------------------------------------

namespace Ocv
{
namespace Comp
{
namespace Imageoperation
{
//-- forward type declarations -----------------------------------------------
class DELPHICLASS TocvCustomImageOperation;
__interface IocvEditorPropertiesContainer;
typedef System::DelphiInterface<IocvEditorPropertiesContainer> _di_IocvEditorPropertiesContainer;
class DELPHICLASS TocvCustomImageOperationWithNestedOperation;
class DELPHICLASS TocvNoneOperation;
class DELPHICLASS TocvResizeOperation;
class DELPHICLASS TocvCvtColorOperation;
class DELPHICLASS TocvGrayScaleOperation;
class DELPHICLASS TocvCannyOperation;
class DELPHICLASS TocvCustomErodeDilateOperation;
class DELPHICLASS TocvErodeOperation;
class DELPHICLASS TocvDilateOperation;
class DELPHICLASS TocvLaplaceOperation;
class DELPHICLASS TocvScalar;
class DELPHICLASS TocvCommonMathOperation;
class DELPHICLASS TocvAddWeightedOperation;
class DELPHICLASS TocvLogicOperation;
class DELPHICLASS TocvLogicSOperation;
class DELPHICLASS TocvSobelOperation;
class DELPHICLASS TocvSmoothOperation;
class DELPHICLASS TocvCustomThresholdOperation;
class DELPHICLASS TocvThresholdOperation;
class DELPHICLASS TocvAdaptiveThresholdOperation;
class DELPHICLASS TocvPoint2D32i;
class DELPHICLASS TocvPoint2D32f;
class DELPHICLASS TocvRect32i;
class DELPHICLASS TocvCropOperation;
class DELPHICLASS TocvInRangeSOperation;
class DELPHICLASS TocvRotateOperation;
class DELPHICLASS TocvQuad;
class DELPHICLASS TocvWarpPerspective;
class DELPHICLASS TocvAbsDiff;
class DELPHICLASS TocvDraw;
class DELPHICLASS TocvDrawColor;
class DELPHICLASS TocvMatchTemplate;
class DELPHICLASS TocvMotionDetect;
class DELPHICLASS TocvHoughCirclesSmooth;
class DELPHICLASS TocvHoughCircles;
class DELPHICLASS TocvHoughLinesCanny;
class DELPHICLASS TocvHoughLines;
class DELPHICLASS TocvHaarCascadeDraw;
class DELPHICLASS TocvHaarCascade;
class DELPHICLASS TocvEditor;
class DELPHICLASS TocvContourDraw;
class DELPHICLASS TocvContourApprox;
class DELPHICLASS TocvContoursOperation;
class DELPHICLASS TocvImageOperationCollectionItem;
class DELPHICLASS TocvImageOperationCollection;
class DELPHICLASS TocvImageOperation;
class DELPHICLASS TRegisteredImageOperations;
//-- type declarations -------------------------------------------------------
typedef System::DynamicArray<double> TArrayDouble;

typedef System::DynamicArray<int> TArrayInteger;

typedef System::DynamicArray<bool> TArrayBoolean;

class PASCALIMPLEMENTATION TocvCustomImageOperation : public System::Classes::TComponent
{
	typedef System::Classes::TComponent inherited;
	
protected:
	virtual void __fastcall AssignTo(System::Classes::TPersistent* Dest);
	
private:
	System::Syncobjs::TCriticalSection* FCriticalSection;
	System::Classes::TPersistent* FOwner;
	System::DynamicArray<double> FFloatParams;
	System::DynamicArray<int> FIntParams;
	System::DynamicArray<bool> FBoolParams;
	Ocv::Comp::Types::TOnOcvNotify FOnAfterTransform;
	Ocv::Comp::Types::TOnOcvBeforeTransform FOnBeforeTransform;
	
protected:
	virtual double __fastcall GetFloatParam(const int index);
	virtual int __fastcall GetIntParam(const int index);
	virtual bool __fastcall GetBoolParam(const int index);
	void __fastcall SetFloatParam(const int index, const double Value);
	void __fastcall SetIntParam(const int index, const int Value);
	void __fastcall SetBoolParam(const int index, const bool Value);
	bool __fastcall LockTransform(void);
	void __fastcall UnlockTransform(void);
	DYNAMIC System::Classes::TPersistent* __fastcall GetOwner(void);
	__property double FloatParams[const int index] = {read=GetFloatParam, write=SetFloatParam};
	__property int IntParams[const int index] = {read=GetIntParam, write=SetIntParam};
	__property bool BoolParams[const int index] = {read=GetBoolParam, write=SetBoolParam};
	
public:
	__fastcall virtual TocvCustomImageOperation(System::Classes::TPersistent* AOwner);
	__fastcall virtual ~TocvCustomImageOperation(void);
	bool __fastcall Transform(const Ocv::Comp::Types::_di_IocvImage Source, Ocv::Comp::Types::_di_IocvImage &Destanation);
	DYNAMIC System::UnicodeString __fastcall GetNamePath(void);
	virtual bool __fastcall DoTransform(const Ocv::Comp::Types::_di_IocvImage Source, /* out */ Ocv::Comp::Types::_di_IocvImage &Destanation);
	__property Name = {default=0};
	
__published:
	__property Ocv::Comp::Types::TOnOcvNotify OnAfterTransform = {read=FOnAfterTransform, write=FOnAfterTransform};
	__property Ocv::Comp::Types::TOnOcvBeforeTransform OnBeforeTransform = {read=FOnBeforeTransform, write=FOnBeforeTransform};
};


typedef System::TMetaClass* TocvImageOperationClass;

__interface  INTERFACE_UUID("{418F88DD-E35D-4425-BF24-E753E83D35D6}") IocvEditorPropertiesContainer  : public System::IInterface 
{
	virtual TocvCustomImageOperation* __fastcall GetProperties(void) = 0 ;
	virtual TocvImageOperationClass __fastcall GetPropertiesClass(void) = 0 ;
	virtual void __fastcall SetPropertiesClass(TocvImageOperationClass Value) = 0 ;
};

class PASCALIMPLEMENTATION TocvCustomImageOperationWithNestedOperation : public TocvCustomImageOperation
{
	typedef TocvCustomImageOperation inherited;
	
private:
	TocvCustomImageOperation* FOperation;
	TocvImageOperationClass FOperationClass;
	System::Syncobjs::TCriticalSection* CS;
	
protected:
	HIDESBASE bool __fastcall LockTransform(void);
	HIDESBASE void __fastcall UnlockTransform(void);
	void __fastcall CreateProperties(void);
	void __fastcall DestroyProperties(void);
	void __fastcall RecreateProperties(void);
	System::UnicodeString __fastcall GetPropertiesClassName(void);
	void __fastcall SetPropertiesClassName(const System::UnicodeString Value);
	TocvCustomImageOperation* __fastcall GetProperties(void);
	void __fastcall SetProperties(TocvCustomImageOperation* const Value);
	virtual TocvImageOperationClass __fastcall GetPropertiesClass(void);
	void __fastcall SetPropertiesClass(TocvImageOperationClass Value);
	__property TocvCustomImageOperation* Operation = {read=GetProperties, write=SetProperties};
	
public:
	__fastcall virtual TocvCustomImageOperationWithNestedOperation(System::Classes::TPersistent* AOwner);
	__fastcall virtual ~TocvCustomImageOperationWithNestedOperation(void);
	__property TocvImageOperationClass OperationClass = {read=GetPropertiesClass, write=SetPropertiesClass};
	
__published:
	__property System::UnicodeString OperationClassName = {read=GetPropertiesClassName, write=SetPropertiesClassName};
private:
	void *__IocvEditorPropertiesContainer;	// IocvEditorPropertiesContainer 
	
public:
	#if defined(MANAGED_INTERFACE_OPERATORS)
	// {418F88DD-E35D-4425-BF24-E753E83D35D6}
	operator _di_IocvEditorPropertiesContainer()
	{
		_di_IocvEditorPropertiesContainer intf;
		this->GetInterface(intf);
		return intf;
	}
	#else
	operator IocvEditorPropertiesContainer*(void) { return (IocvEditorPropertiesContainer*)&__IocvEditorPropertiesContainer; }
	#endif
	
};


class PASCALIMPLEMENTATION TocvNoneOperation : public TocvCustomImageOperation
{
	typedef TocvCustomImageOperation inherited;
	
public:
	virtual bool __fastcall DoTransform(const Ocv::Comp::Types::_di_IocvImage Source, /* out */ Ocv::Comp::Types::_di_IocvImage &Destanation);
public:
	/* TocvCustomImageOperation.Create */ inline __fastcall virtual TocvNoneOperation(System::Classes::TPersistent* AOwner) : TocvCustomImageOperation(AOwner) { }
	/* TocvCustomImageOperation.Destroy */ inline __fastcall virtual ~TocvNoneOperation(void) { }
	
};


enum DECLSPEC_DENUM TocvInterpolationMethod : unsigned char { INTER_NN, INTER_LINEAR, INTER_CUBIC, INTER_AREA, INTER_LANCZOS4 };

class PASCALIMPLEMENTATION TocvResizeOperation : public TocvCustomImageOperation
{
	typedef TocvCustomImageOperation inherited;
	
private:
	TocvInterpolationMethod FInterpolation;
	
protected:
	virtual void __fastcall AssignTo(System::Classes::TPersistent* Dest);
	
public:
	__fastcall virtual TocvResizeOperation(System::Classes::TPersistent* AOwner);
	virtual bool __fastcall DoTransform(const Ocv::Comp::Types::_di_IocvImage Source, /* out */ Ocv::Comp::Types::_di_IocvImage &Destanation);
	
__published:
	__property int DestWidth = {read=GetIntParam, write=SetIntParam, index=0, nodefault};
	__property int DestHeight = {read=GetIntParam, write=SetIntParam, index=1, nodefault};
	__property TocvInterpolationMethod Interpolation = {read=FInterpolation, write=FInterpolation, default=1};
public:
	/* TocvCustomImageOperation.Destroy */ inline __fastcall virtual ~TocvResizeOperation(void) { }
	
};


enum DECLSPEC_DENUM TocvColorConversion : unsigned char { BGR2BGRA, RGB2RGBA, BGRA2BGR, RGBA2RGB, BGR2RGBA, RGB2BGRA, RGBA2BGR, BGRA2RGB, BGR2RGB, RGB2BGR, BGRA2RGBA, RGBA2BGRA, BGR2GRAY, RGB2GRAY, GRAY2BGR, GRAY2RGB, GRAY2BGRA, GRAY2RGBA, BGRA2GRAY, RGBA2GRAY, BGR2BGR565, RGB2BGR565, BGR5652BGR, BGR5652RGB, BGRA2BGR565, RGBA2BGR565, BGR5652BGRA, BGR5652RGBA, GRAY2BGR565, BGR5652GRAY, BGR2BGR555, RGB2BGR555, BGR5552BGR, BGR5552RGB, BGRA2BGR555, RGBA2BGR555, BGR5552BGRA, BGR5552RGBA, GRAY2BGR555, BGR5552GRAY, BGR2XYZ, RGB2XYZ, XYZ2BGR, XYZ2RGB, BGR2YCrCb, RGB2YCrCb, YCrCb2BGR, YCrCb2RGB, BGR2HSV, RGB2HSV, BGR2Lab, RGB2Lab, BayerBG2BGR, BayerGB2BGR, BayerRG2BGR, BayerGR2BGR, BayerBG2RGB, BayerGB2RGB, BayerRG2RGB, BayerGR2RGB, BGR2Luv, RGB2Luv, BGR2HLS, RGB2HLS, 
	HSV2BGR, HSV2RGB, Lab2BGR, Lab2RGB, Luv2BGR, Luv2RGB, HLS2BGR, HLS2RGB, BayerBG2BGR_VNG, BayerGB2BGR_VNG, BayerRG2BGR_VNG, BayerGR2BGR_VNG, BayerBG2RGB_VNG, BayerGB2RGB_VNG, BayerRG2RGB_VNG, BayerGR2RGB_VNG, BGR2HSV_FULL, RGB2HSV_FULL, BGR2HLS_FULL, RGB2HLS_FULL, HSV2BGR_FULL, HSV2RGB_FULL, HLS2BGR_FULL, HLS2RGB_FULL, LBGR2Lab, LRGB2Lab, LBGR2Luv, LRGB2Luv, Lab2LBGR, Lab2LRGB, Luv2LBGR, Luv2LRGB, BGR2YUV, RGB2YUV, YUV2BGR, YUV2RGB, BayerBG2GRAY, BayerGB2GRAY, BayerRG2GRAY, BayerGR2GRAY, YUV2RGB_NV12, YUV2BGR_NV12, YUV2RGB_NV21, YUV2BGR_NV21, YUV420sp2RGB, YUV420sp2BGR, YUV2RGBA_NV12, YUV2BGRA_NV12, YUV2RGBA_NV21, YUV2BGRA_NV21, YUV420sp2RGBA, YUV420sp2BGRA, YUV2RGB_YV12, YUV2BGR_YV12, YUV2RGB_IYUV, YUV2BGR_IYUV, YUV2RGB_I420, YUV2BGR_I420, YUV420p2RGB, 
	YUV420p2BGR, YUV2RGBA_YV12, YUV2BGRA_YV12, YUV2RGBA_IYUV, YUV2BGRA_IYUV, YUV2RGBA_I420, YUV2BGRA_I420, YUV420p2RGBA, YUV420p2BGRA, YUV2GRAY_420, YUV2GRAY_NV21, YUV2GRAY_NV12, YUV2GRAY_YV12, YUV2GRAY_IYUV, YUV2GRAY_I420, YUV420sp2GRAY, YUV420p2GRAY, YUV2RGB_UYVY, YUV2BGR_UYVY, YUV2RGB_Y422, YUV2BGR_Y422, YUV2RGB_UYNV, YUV2BGR_UYNV, YUV2RGBA_UYVY, YUV2BGRA_UYVY, YUV2RGBA_Y422, YUV2BGRA_Y422, YUV2RGBA_UYNV, YUV2BGRA_UYNV, YUV2RGB_YUY2, YUV2BGR_YUY2, YUV2RGB_YVYU, YUV2BGR_YVYU, YUV2RGB_YUYV, YUV2BGR_YUYV, YUV2RGB_YUNV, YUV2BGR_YUNV, YUV2RGBA_YUY2, YUV2BGRA_YUY2, YUV2RGBA_YVYU, YUV2BGRA_YVYU, YUV2RGBA_YUYV, YUV2BGRA_YUYV, YUV2RGBA_YUNV, YUV2BGRA_YUNV, YUV2GRAY_UYVY, YUV2GRAY_YUY2, YUV2GRAY_Y422, YUV2GRAY_UYNV, YUV2GRAY_YVYU, YUV2GRAY_YUYV, YUV2GRAY_YUNV, 
	RGBA2mRGBA, mRGBA2RGBA, COLORCVT_MAX };

enum DECLSPEC_DENUM TocvIPLDepth : unsigned char { DEPTH_1U, DEPTH_8U, DEPTH_16U, DEPTH_32F, DEPTH_64F, DEPTH_8S, DEPTH_16S, DEPTH_32S };

class PASCALIMPLEMENTATION TocvCvtColorOperation : public TocvCustomImageOperation
{
	typedef TocvCustomImageOperation inherited;
	
private:
	static System::StaticArray<int, 8> cIPLDepth;
	static System::StaticArray<int, 178> cColorConversion;
	TocvColorConversion FColorConversion;
	int FChannels;
	TocvIPLDepth FDepth;
	
public:
	__fastcall virtual TocvCvtColorOperation(System::Classes::TPersistent* AOwner);
	virtual bool __fastcall DoTransform(const Ocv::Comp::Types::_di_IocvImage Source, /* out */ Ocv::Comp::Types::_di_IocvImage &Destanation);
	
__published:
	__property TocvColorConversion ColorConversion = {read=FColorConversion, write=FColorConversion, default=13};
	__property TocvIPLDepth Depth = {read=FDepth, write=FDepth, nodefault};
	__property int Channels = {read=FChannels, write=FChannels, nodefault};
public:
	/* TocvCustomImageOperation.Destroy */ inline __fastcall virtual ~TocvCvtColorOperation(void) { }
	
};


class PASCALIMPLEMENTATION TocvGrayScaleOperation : public TocvCvtColorOperation
{
	typedef TocvCvtColorOperation inherited;
	
public:
	virtual bool __fastcall DoTransform(const Ocv::Comp::Types::_di_IocvImage Source, /* out */ Ocv::Comp::Types::_di_IocvImage &Destanation);
	__property ColorConversion = {default=13};
	__property Depth;
	__property Channels;
public:
	/* TocvCvtColorOperation.Create */ inline __fastcall virtual TocvGrayScaleOperation(System::Classes::TPersistent* AOwner) : TocvCvtColorOperation(AOwner) { }
	
public:
	/* TocvCustomImageOperation.Destroy */ inline __fastcall virtual ~TocvGrayScaleOperation(void) { }
	
};


class PASCALIMPLEMENTATION TocvCannyOperation : public TocvCustomImageOperation
{
	typedef TocvCustomImageOperation inherited;
	
public:
	__fastcall virtual TocvCannyOperation(System::Classes::TPersistent* AOwner);
	virtual bool __fastcall DoTransform(const Ocv::Comp::Types::_di_IocvImage Source, /* out */ Ocv::Comp::Types::_di_IocvImage &Destanation);
	
__published:
	__property double Threshold1 = {read=GetFloatParam, write=SetFloatParam, index=0};
	__property double Threshold2 = {read=GetFloatParam, write=SetFloatParam, index=1};
	__property int ApertureSize = {read=GetIntParam, write=SetIntParam, index=0, nodefault};
public:
	/* TocvCustomImageOperation.Destroy */ inline __fastcall virtual ~TocvCannyOperation(void) { }
	
};


enum DECLSPEC_DENUM TocvErodeDilateMode : unsigned char { SHAPE_RECT, SHAPE_CROSS, SHAPE_ELLIPSE, SHAPE_CUSTOM };

class PASCALIMPLEMENTATION TocvCustomErodeDilateOperation : public TocvCustomImageOperation
{
	typedef TocvCustomImageOperation inherited;
	
protected:
	virtual void __fastcall AssignTo(System::Classes::TPersistent* Dest);
	
private:
	TocvErodeDilateMode FMorphOp;
	void __fastcall SetMorphOp(const TocvErodeDilateMode Value);
	
public:
	__fastcall virtual TocvCustomErodeDilateOperation(System::Classes::TPersistent* AOwner);
	
__published:
	__property int Radius = {read=GetIntParam, write=SetIntParam, index=0, nodefault};
	__property int Iterations = {read=GetIntParam, write=SetIntParam, index=1, nodefault};
	__property TocvErodeDilateMode MorphOp = {read=FMorphOp, write=SetMorphOp, default=0};
public:
	/* TocvCustomImageOperation.Destroy */ inline __fastcall virtual ~TocvCustomErodeDilateOperation(void) { }
	
};


class PASCALIMPLEMENTATION TocvErodeOperation : public TocvCustomErodeDilateOperation
{
	typedef TocvCustomErodeDilateOperation inherited;
	
public:
	virtual bool __fastcall DoTransform(const Ocv::Comp::Types::_di_IocvImage Source, /* out */ Ocv::Comp::Types::_di_IocvImage &Destanation);
public:
	/* TocvCustomErodeDilateOperation.Create */ inline __fastcall virtual TocvErodeOperation(System::Classes::TPersistent* AOwner) : TocvCustomErodeDilateOperation(AOwner) { }
	
public:
	/* TocvCustomImageOperation.Destroy */ inline __fastcall virtual ~TocvErodeOperation(void) { }
	
};


class PASCALIMPLEMENTATION TocvDilateOperation : public TocvCustomErodeDilateOperation
{
	typedef TocvCustomErodeDilateOperation inherited;
	
public:
	virtual bool __fastcall DoTransform(const Ocv::Comp::Types::_di_IocvImage Source, /* out */ Ocv::Comp::Types::_di_IocvImage &Destanation);
public:
	/* TocvCustomErodeDilateOperation.Create */ inline __fastcall virtual TocvDilateOperation(System::Classes::TPersistent* AOwner) : TocvCustomErodeDilateOperation(AOwner) { }
	
public:
	/* TocvCustomImageOperation.Destroy */ inline __fastcall virtual ~TocvDilateOperation(void) { }
	
};


class PASCALIMPLEMENTATION TocvLaplaceOperation : public TocvCustomImageOperation
{
	typedef TocvCustomImageOperation inherited;
	
public:
	__fastcall virtual TocvLaplaceOperation(System::Classes::TPersistent* AOwner);
	virtual bool __fastcall DoTransform(const Ocv::Comp::Types::_di_IocvImage Source, /* out */ Ocv::Comp::Types::_di_IocvImage &Destanation);
	
__published:
	__property int Aperture = {read=GetIntParam, write=SetIntParam, index=0, nodefault};
public:
	/* TocvCustomImageOperation.Destroy */ inline __fastcall virtual ~TocvLaplaceOperation(void) { }
	
};


class PASCALIMPLEMENTATION TocvScalar : public System::Classes::TPersistent
{
	typedef System::Classes::TPersistent inherited;
	
protected:
	virtual void __fastcall AssignTo(System::Classes::TPersistent* Dest);
	
private:
	Ocv::Core::Types_c::TCvScalar FCvScalar;
	double __fastcall GetScalar(const int index);
	void __fastcall SetScalar(const int index, const double Value);
	
public:
	__property Ocv::Core::Types_c::TCvScalar CvScalar = {read=FCvScalar, write=FCvScalar};
	__property double Scalar[const int Index] = {read=GetScalar, write=SetScalar};
	
__published:
	__property double Val0 = {read=GetScalar, write=SetScalar, index=0};
	__property double Val1 = {read=GetScalar, write=SetScalar, index=1};
	__property double Val2 = {read=GetScalar, write=SetScalar, index=2};
	__property double Val3 = {read=GetScalar, write=SetScalar, index=3};
public:
	/* TPersistent.Destroy */ inline __fastcall virtual ~TocvScalar(void) { }
	
public:
	/* TObject.Create */ inline __fastcall TocvScalar(void) : System::Classes::TPersistent() { }
	
};


typedef void __fastcall (__closure *TOnGetImage)(System::TObject* Sender, Ocv::Comp::Types::_di_IocvImage &Source2Image);

class PASCALIMPLEMENTATION TocvCommonMathOperation : public TocvCustomImageOperation
{
	typedef TocvCustomImageOperation inherited;
	
private:
	Ocv::Comp::Types::_di_IocvDataSource FocvVideoSource;
	Ocv::Comp::Types::_di_IocvImage FSrource2Image;
	TOnGetImage FOnGetImage;
	TOnGetImage FOnGetMaskImage;
	TocvInterpolationMethod FTransformInterpolation;
	void __fastcall SetVideoSource_Source2(const Ocv::Comp::Types::_di_IocvDataSource Value);
	void __fastcall DoGetSourceImage(Ocv::Comp::Types::_di_IocvImage &Image);
	void __fastcall DoGetMaskImage(Ocv::Comp::Types::_di_IocvImage &Image);
	void __fastcall GetImagesForTransorm(/* out */ Ocv::Comp::Types::_di_IocvImage &Source1, /* out */ Ocv::Comp::Types::_di_IocvImage &Source2, /* out */ Ocv::Comp::Types::_di_IocvImage &Mask);
	__property Ocv::Comp::Types::_di_IocvDataSource VideoSource = {read=FocvVideoSource, write=SetVideoSource_Source2};
	__property TOnGetImage OnGetSourceImage = {read=FOnGetImage, write=FOnGetImage};
	__property TOnGetImage OnGetMaskImage = {read=FOnGetMaskImage, write=FOnGetMaskImage};
	__property TocvInterpolationMethod TransformInterpolation = {read=FTransformInterpolation, write=FTransformInterpolation, default=2};
	
public:
	__fastcall virtual TocvCommonMathOperation(System::Classes::TPersistent* AOwner);
	
protected:
	void __fastcall TakeImage(const Ocv::Comp::Types::_di_IocvImage IplImage);
	void __fastcall SetVideoSource(System::TObject* const Value);
public:
	/* TocvCustomImageOperation.Destroy */ inline __fastcall virtual ~TocvCommonMathOperation(void) { }
	
private:
	void *__IocvDataReceiver;	// Ocv::Comp::Types::IocvDataReceiver 
	
public:
	#if defined(MANAGED_INTERFACE_OPERATORS)
	// {F67DEC9E-CCE0-49D2-AB9B-AD7E1020C5DC}
	operator Ocv::Comp::Types::_di_IocvDataReceiver()
	{
		Ocv::Comp::Types::_di_IocvDataReceiver intf;
		this->GetInterface(intf);
		return intf;
	}
	#else
	operator Ocv::Comp::Types::IocvDataReceiver*(void) { return (Ocv::Comp::Types::IocvDataReceiver*)&__IocvDataReceiver; }
	#endif
	
};


class PASCALIMPLEMENTATION TocvAddWeightedOperation : public TocvCommonMathOperation
{
	typedef TocvCommonMathOperation inherited;
	
public:
	__fastcall virtual TocvAddWeightedOperation(System::Classes::TPersistent* AOwner);
	virtual bool __fastcall DoTransform(const Ocv::Comp::Types::_di_IocvImage Source, /* out */ Ocv::Comp::Types::_di_IocvImage &Destanation);
	
__published:
	__property VideoSource;
	__property OnGetSourceImage;
	__property TransformInterpolation = {default=2};
	__property double Alpha = {read=GetFloatParam, write=SetFloatParam, index=0};
	__property double Beta = {read=GetFloatParam, write=SetFloatParam, index=1};
	__property double Gamma = {read=GetFloatParam, write=SetFloatParam, index=2};
public:
	/* TocvCustomImageOperation.Destroy */ inline __fastcall virtual ~TocvAddWeightedOperation(void) { }
	
};


enum DECLSPEC_DENUM TocvLogicType : unsigned char { ioAdd, ioSub, ioAnd, ioOr, ioXor };

class PASCALIMPLEMENTATION TocvLogicOperation : public TocvCommonMathOperation
{
	typedef TocvCommonMathOperation inherited;
	
protected:
	virtual void __fastcall AssignTo(System::Classes::TPersistent* Dest);
	
private:
	TocvLogicType FOperation;
	
public:
	__fastcall virtual TocvLogicOperation(System::Classes::TPersistent* AOwner);
	virtual bool __fastcall DoTransform(const Ocv::Comp::Types::_di_IocvImage Source, /* out */ Ocv::Comp::Types::_di_IocvImage &Destanation);
	
__published:
	__property VideoSource;
	__property OnGetSourceImage;
	__property OnGetMaskImage;
	__property TransformInterpolation = {default=2};
	__property TocvLogicType Operation = {read=FOperation, write=FOperation, default=0};
public:
	/* TocvCustomImageOperation.Destroy */ inline __fastcall virtual ~TocvLogicOperation(void) { }
	
};


enum DECLSPEC_DENUM TocvLogicSType : unsigned char { ioAddS, ioSubS, ioSubRS, ioXorS };

class PASCALIMPLEMENTATION TocvLogicSOperation : public TocvCommonMathOperation
{
	typedef TocvCommonMathOperation inherited;
	
protected:
	virtual void __fastcall AssignTo(System::Classes::TPersistent* Dest);
	
private:
	TocvLogicSType FOperation;
	TocvScalar* FValue;
	
public:
	__fastcall virtual TocvLogicSOperation(System::Classes::TPersistent* AOwner);
	__fastcall virtual ~TocvLogicSOperation(void);
	virtual bool __fastcall DoTransform(const Ocv::Comp::Types::_di_IocvImage Source, /* out */ Ocv::Comp::Types::_di_IocvImage &Destanation);
	
__published:
	__property OnGetMaskImage;
	__property TransformInterpolation = {default=2};
	__property TocvLogicSType Operation = {read=FOperation, write=FOperation, default=0};
	__property TocvScalar* Value = {read=FValue, write=FValue};
};


class PASCALIMPLEMENTATION TocvSobelOperation : public TocvCustomImageOperation
{
	typedef TocvCustomImageOperation inherited;
	
public:
	__fastcall virtual TocvSobelOperation(System::Classes::TPersistent* AOwner);
	virtual bool __fastcall DoTransform(const Ocv::Comp::Types::_di_IocvImage Source, /* out */ Ocv::Comp::Types::_di_IocvImage &Destanation);
	
__published:
	__property int XOrder = {read=GetIntParam, write=SetIntParam, index=0, nodefault};
	__property int YOrder = {read=GetIntParam, write=SetIntParam, index=1, nodefault};
	__property int Aperture = {read=GetIntParam, write=SetIntParam, index=2, nodefault};
public:
	/* TocvCustomImageOperation.Destroy */ inline __fastcall virtual ~TocvSobelOperation(void) { }
	
};


enum DECLSPEC_DENUM TocvSmoothOperations : unsigned char { BLUR_NO_SCALE, BLUR, GAUSSIAN, MEDIAN, BILATERAL };

class PASCALIMPLEMENTATION TocvSmoothOperation : public TocvCustomImageOperation
{
	typedef TocvCustomImageOperation inherited;
	
protected:
	virtual void __fastcall AssignTo(System::Classes::TPersistent* Dest);
	
private:
	TocvSmoothOperations FSmoothOperation;
	void __fastcall SetSmoothOperation(const TocvSmoothOperations Value);
	
public:
	__fastcall virtual TocvSmoothOperation(System::Classes::TPersistent* AOwner);
	virtual bool __fastcall DoTransform(const Ocv::Comp::Types::_di_IocvImage Source, /* out */ Ocv::Comp::Types::_di_IocvImage &Destanation);
	
__published:
	__property double sigma1 = {read=GetFloatParam, write=SetFloatParam, index=0};
	__property double sigma2 = {read=GetFloatParam, write=SetFloatParam, index=1};
	__property int size1 = {read=GetIntParam, write=SetIntParam, index=0, nodefault};
	__property int size2 = {read=GetIntParam, write=SetIntParam, index=1, nodefault};
	__property TocvSmoothOperations SmoothType = {read=FSmoothOperation, write=SetSmoothOperation, default=2};
public:
	/* TocvCustomImageOperation.Destroy */ inline __fastcall virtual ~TocvSmoothOperation(void) { }
	
};


enum DECLSPEC_DENUM TocvThresholdType : unsigned char { THRESH_BINARY, THRESH_BINARY_INV, THRESH_TRUNC, THRESH_TOZERO, THRESH_TOZERO_INV, THRESH_MASK, THRESH_OTSU };

class PASCALIMPLEMENTATION TocvCustomThresholdOperation : public TocvCustomImageOperation
{
	typedef TocvCustomImageOperation inherited;
	
private:
	TocvThresholdType __fastcall GetThresholdType(void);
	void __fastcall SetThresholdType(const TocvThresholdType Value);
	
public:
	__fastcall virtual TocvCustomThresholdOperation(System::Classes::TPersistent* AOwner);
	
__published:
	__property double MaxValue = {read=GetFloatParam, write=SetFloatParam, index=0};
	__property TocvThresholdType ThresholdType = {read=GetThresholdType, write=SetThresholdType, default=0};
public:
	/* TocvCustomImageOperation.Destroy */ inline __fastcall virtual ~TocvCustomThresholdOperation(void) { }
	
};


class PASCALIMPLEMENTATION TocvThresholdOperation : public TocvCustomThresholdOperation
{
	typedef TocvCustomThresholdOperation inherited;
	
public:
	__fastcall virtual TocvThresholdOperation(System::Classes::TPersistent* AOwner);
	virtual bool __fastcall DoTransform(const Ocv::Comp::Types::_di_IocvImage Source, /* out */ Ocv::Comp::Types::_di_IocvImage &Destanation);
	
__published:
	__property double Threshold = {read=GetFloatParam, write=SetFloatParam, index=1};
public:
	/* TocvCustomImageOperation.Destroy */ inline __fastcall virtual ~TocvThresholdOperation(void) { }
	
};


enum DECLSPEC_DENUM TocvAdaptiveThresholdType : unsigned char { ADAPTIVE_THRESH_MEAN_C, ADAPTIVE_THRESH_GAUSSIAN_C };

class PASCALIMPLEMENTATION TocvAdaptiveThresholdOperation : public TocvCustomThresholdOperation
{
	typedef TocvCustomThresholdOperation inherited;
	
private:
	TocvAdaptiveThresholdType __fastcall GetAdaptiveThresholdType(void);
	void __fastcall SetAdaptiveThresholdType(const TocvAdaptiveThresholdType Value);
	
public:
	__fastcall virtual TocvAdaptiveThresholdOperation(System::Classes::TPersistent* AOwner);
	virtual bool __fastcall DoTransform(const Ocv::Comp::Types::_di_IocvImage Source, /* out */ Ocv::Comp::Types::_di_IocvImage &Destanation);
	
__published:
	__property TocvAdaptiveThresholdType AdaptiveThresholdType = {read=GetAdaptiveThresholdType, write=SetAdaptiveThresholdType, default=0};
	__property int BlockSize = {read=GetIntParam, write=SetIntParam, index=2, nodefault};
	__property double Param = {read=GetFloatParam, write=SetFloatParam, index=1};
public:
	/* TocvCustomImageOperation.Destroy */ inline __fastcall virtual ~TocvAdaptiveThresholdOperation(void) { }
	
};


#pragma pack(push,4)
class PASCALIMPLEMENTATION TocvPoint2D32i : public System::Classes::TPersistent
{
	typedef System::Classes::TPersistent inherited;
	
protected:
	virtual void __fastcall AssignTo(System::Classes::TPersistent* Dest);
	
private:
	Ocv::Core::Types_c::TCvSize FSize;
	
public:
	__fastcall TocvPoint2D32i(const int AX, const int AY);
	__property Ocv::Core::Types_c::TCvSize Size = {read=FSize, write=FSize};
	
__published:
	__property int X = {read=FSize.width, write=FSize.width, nodefault};
	__property int Y = {read=FSize.height, write=FSize.height, nodefault};
public:
	/* TPersistent.Destroy */ inline __fastcall virtual ~TocvPoint2D32i(void) { }
	
};

#pragma pack(pop)

#pragma pack(push,4)
class PASCALIMPLEMENTATION TocvPoint2D32f : public System::Classes::TPersistent
{
	typedef System::Classes::TPersistent inherited;
	
protected:
	virtual void __fastcall AssignTo(System::Classes::TPersistent* Dest);
	
private:
	float FX;
	float FY;
	
public:
	__fastcall TocvPoint2D32f(const float AX, const float AY);
	
__published:
	__property float X = {read=FX, write=FX};
	__property float Y = {read=FY, write=FY};
public:
	/* TPersistent.Destroy */ inline __fastcall virtual ~TocvPoint2D32f(void) { }
	
};

#pragma pack(pop)

#pragma pack(push,4)
class PASCALIMPLEMENTATION TocvRect32i : public System::Classes::TPersistent
{
	typedef System::Classes::TPersistent inherited;
	
protected:
	virtual void __fastcall AssignTo(System::Classes::TPersistent* Dest);
	
private:
	int FRight;
	int FBottom;
	int FTop;
	int FLeft;
	int __fastcall GetHeight(void);
	Ocv::Comp::Types::TocvRect __fastcall GetOcvRect(void);
	int __fastcall GetWidth(void);
	void __fastcall SetHeight(const int Value);
	void __fastcall SetOcvRect(const Ocv::Comp::Types::TocvRect &Value);
	void __fastcall SetWidth(const int Value);
	Ocv::Core::Types_c::TCvRect __fastcall GetCvRect(void);
	void __fastcall SetCvRect(const Ocv::Core::Types_c::TCvRect &Value);
	
__published:
	__property int Left = {read=FLeft, write=FLeft, nodefault};
	__property int Top = {read=FTop, write=FTop, nodefault};
	__property int Bottom = {read=FBottom, write=FBottom, nodefault};
	__property int Right = {read=FRight, write=FRight, nodefault};
	__property int Width = {read=GetWidth, write=SetWidth, nodefault};
	__property int height = {read=GetHeight, write=SetHeight, nodefault};
	
public:
	__property Ocv::Comp::Types::TocvRect ocvRect = {read=GetOcvRect, write=SetOcvRect};
	__property Ocv::Core::Types_c::TCvRect cvRect = {read=GetCvRect, write=SetCvRect};
public:
	/* TPersistent.Destroy */ inline __fastcall virtual ~TocvRect32i(void) { }
	
public:
	/* TObject.Create */ inline __fastcall TocvRect32i(void) : System::Classes::TPersistent() { }
	
};

#pragma pack(pop)

class PASCALIMPLEMENTATION TocvCropOperation : public TocvCustomImageOperation
{
	typedef TocvCustomImageOperation inherited;
	
private:
	TocvRect32i* FCropRect;
	
public:
	__fastcall virtual TocvCropOperation(System::Classes::TPersistent* AOwner);
	__fastcall virtual ~TocvCropOperation(void);
	virtual bool __fastcall DoTransform(const Ocv::Comp::Types::_di_IocvImage Source, /* out */ Ocv::Comp::Types::_di_IocvImage &Destanation);
	
__published:
	__property TocvRect32i* CropRect = {read=FCropRect, write=FCropRect};
};


class PASCALIMPLEMENTATION TocvInRangeSOperation : public TocvCustomImageOperation
{
	typedef TocvCustomImageOperation inherited;
	
protected:
	virtual void __fastcall AssignTo(System::Classes::TPersistent* Dest);
	
private:
	TocvScalar* FLower;
	TocvScalar* FUpper;
	
public:
	__fastcall virtual TocvInRangeSOperation(System::Classes::TPersistent* AOwner);
	__fastcall virtual ~TocvInRangeSOperation(void);
	virtual bool __fastcall DoTransform(const Ocv::Comp::Types::_di_IocvImage Source, /* out */ Ocv::Comp::Types::_di_IocvImage &Destanation);
	
__published:
	__property TocvScalar* Lower = {read=FLower, write=FLower};
	__property TocvScalar* Upper = {read=FUpper, write=FUpper};
};


enum DECLSPEC_DENUM TocvInterpolationWarpingFlag : unsigned char { WARP_FILL_OUTLIERS, WARP_INVERSE_MAP };

typedef System::Set<TocvInterpolationWarpingFlag, TocvInterpolationWarpingFlag::WARP_FILL_OUTLIERS, TocvInterpolationWarpingFlag::WARP_INVERSE_MAP> TocvInterpolationWarpingFlagSet;

class PASCALIMPLEMENTATION TocvRotateOperation : public TocvCustomImageOperation
{
	typedef TocvCustomImageOperation inherited;
	
protected:
	virtual void __fastcall AssignTo(System::Classes::TPersistent* Dest);
	
private:
	TocvPoint2D32f* FCenter;
	TocvInterpolationMethod FMethod;
	TocvInterpolationWarpingFlagSet FWarpingFlag;
	System::Uitypes::TColor FFillColor;
	
public:
	__fastcall virtual TocvRotateOperation(System::Classes::TPersistent* AOwner);
	__fastcall virtual ~TocvRotateOperation(void);
	virtual bool __fastcall DoTransform(const Ocv::Comp::Types::_di_IocvImage Source, /* out */ Ocv::Comp::Types::_di_IocvImage &Destanation);
	
__published:
	__property int Angle = {read=GetIntParam, write=SetIntParam, index=0, nodefault};
	__property bool RotateAroundCenter = {read=GetBoolParam, write=SetBoolParam, index=0, nodefault};
	__property TocvPoint2D32f* CustomCenter = {read=FCenter, write=FCenter};
	__property TocvInterpolationMethod Method = {read=FMethod, write=FMethod, default=1};
	__property TocvInterpolationWarpingFlagSet WarpingFlag = {read=FWarpingFlag, write=FWarpingFlag, default=1};
	__property double Scale = {read=GetFloatParam, write=SetFloatParam, index=0};
	__property System::Uitypes::TColor FillColor = {read=FFillColor, write=FFillColor, default=0};
};


#pragma pack(push,4)
class PASCALIMPLEMENTATION TocvQuad : public System::Classes::TPersistent
{
	typedef System::Classes::TPersistent inherited;
	
	
public:
	typedef System::StaticArray<TocvPoint2D32f*, 4> TOcvQuadPoints;
	
	typedef System::StaticArray<Ocv::Core::Types_c::TCvPoint2D32f, 4> TCvPoint2D32fArray;
	
	
protected:
	virtual void __fastcall AssignTo(System::Classes::TPersistent* Dest);
	TOcvQuadPoints FPoints;
	bool __fastcall ShaIsConvexQuadrangle(void);
	
private:
	TocvPoint2D32f* __fastcall GetPoints(const int index);
	void __fastcall SetPoints(const int index, TocvPoint2D32f* const Value);
	TCvPoint2D32fArray __fastcall GetCvQuad(void);
	
public:
	__fastcall TocvQuad(void);
	__fastcall virtual ~TocvQuad(void);
	__property TocvPoint2D32f* Points[const int Index] = {read=GetPoints, write=SetPoints};
	__property TOcvQuadPoints Quad = {read=FPoints};
	__property TCvPoint2D32fArray cvQuad = {read=GetCvQuad};
	
__published:
	__property TocvPoint2D32f* TopLeft = {read=GetPoints, write=SetPoints, index=0};
	__property TocvPoint2D32f* TopRight = {read=GetPoints, write=SetPoints, index=1};
	__property TocvPoint2D32f* BottomLeft = {read=GetPoints, write=SetPoints, index=2};
	__property TocvPoint2D32f* BottomRight = {read=GetPoints, write=SetPoints, index=3};
};

#pragma pack(pop)

class PASCALIMPLEMENTATION TocvWarpPerspective : public TocvCustomImageOperation
{
	typedef TocvCustomImageOperation inherited;
	
protected:
	virtual void __fastcall AssignTo(System::Classes::TPersistent* Dest);
	
private:
	TocvQuad* FSourceQuad;
	TocvQuad* FDestQuad;
	TocvInterpolationMethod FMethod;
	TocvInterpolationWarpingFlagSet FWarpingFlag;
	System::Uitypes::TColor FFillColor;
	
public:
	__fastcall virtual TocvWarpPerspective(System::Classes::TPersistent* AOwner);
	__fastcall virtual ~TocvWarpPerspective(void);
	virtual bool __fastcall DoTransform(const Ocv::Comp::Types::_di_IocvImage Source, /* out */ Ocv::Comp::Types::_di_IocvImage &Destanation);
	
__published:
	__property TocvQuad* SourceQuad = {read=FSourceQuad, write=FSourceQuad};
	__property TocvQuad* DestQuad = {read=FDestQuad, write=FDestQuad};
	__property TocvInterpolationMethod Method = {read=FMethod, write=FMethod, default=1};
	__property TocvInterpolationWarpingFlagSet WarpingFlag = {read=FWarpingFlag, write=FWarpingFlag, default=1};
	__property bool FullSourceImage = {read=GetBoolParam, write=SetBoolParam, index=0, nodefault};
	__property System::Uitypes::TColor FillColor = {read=FFillColor, write=FFillColor, nodefault};
};


class PASCALIMPLEMENTATION TocvAbsDiff : public TocvCustomImageOperation
{
	typedef TocvCustomImageOperation inherited;
	
protected:
	Ocv::Comp::Types::_di_IocvImage FPrevFrame;
	
public:
	virtual bool __fastcall DoTransform(const Ocv::Comp::Types::_di_IocvImage Source, /* out */ Ocv::Comp::Types::_di_IocvImage &Destanation);
public:
	/* TocvCustomImageOperation.Create */ inline __fastcall virtual TocvAbsDiff(System::Classes::TPersistent* AOwner) : TocvCustomImageOperation(AOwner) { }
	/* TocvCustomImageOperation.Destroy */ inline __fastcall virtual ~TocvAbsDiff(void) { }
	
};


#pragma pack(push,4)
class PASCALIMPLEMENTATION TocvDraw : public System::Classes::TPersistent
{
	typedef System::Classes::TPersistent inherited;
	
protected:
	System::Uitypes::TColor FColor;
	virtual void __fastcall AssignTo(System::Classes::TPersistent* Dest);
	DYNAMIC System::Classes::TPersistent* __fastcall GetOwner(void);
	
private:
	System::Classes::TPersistent* FOwner;
	TocvPoint2D32i* FOffset;
	bool FEnabled;
	int FThickness;
	Ocv::Comp::Types::TocvLineType FLineType;
	int FShift;
	int __fastcall GetCvLineType(void);
	Ocv::Core::Types_c::TCvScalar __fastcall GetCvColor(void);
	
public:
	__fastcall TocvDraw(System::Classes::TPersistent* AOwner);
	__fastcall virtual ~TocvDraw(void);
	__property System::Uitypes::TColor Color = {read=FColor, write=FColor, default=32768};
	__property int Shift = {read=FShift, write=FShift, default=0};
	__property int cvLineType = {read=GetCvLineType, nodefault};
	__property Ocv::Core::Types_c::TCvScalar cvColor = {read=GetCvColor};
	
__published:
	__property bool Enabled = {read=FEnabled, write=FEnabled, default=1};
	__property int Thickness = {read=FThickness, write=FThickness, default=2};
	__property Ocv::Comp::Types::TocvLineType LineType = {read=FLineType, write=FLineType, default=2};
	__property TocvPoint2D32i* Offset = {read=FOffset, write=FOffset};
};

#pragma pack(pop)

#pragma pack(push,4)
class PASCALIMPLEMENTATION TocvDrawColor : public TocvDraw
{
	typedef TocvDraw inherited;
	
__published:
	__property Color = {default=32768};
public:
	/* TocvDraw.Create */ inline __fastcall TocvDrawColor(System::Classes::TPersistent* AOwner) : TocvDraw(AOwner) { }
	/* TocvDraw.Destroy */ inline __fastcall virtual ~TocvDrawColor(void) { }
	
};

#pragma pack(pop)

enum DECLSPEC_DENUM TocvMatchTemplateMethod : unsigned char { TM_SQDIFF, TM_SQDIFF_NORMED, TM_CCORR, TM_CCORR_NORMED, TM_CCOEFF, TM_CCOEFF_NORMED };

class PASCALIMPLEMENTATION TocvMatchTemplate : public TocvCustomImageOperation
{
	typedef TocvCustomImageOperation inherited;
	
protected:
	virtual void __fastcall AssignTo(System::Classes::TPersistent* Dest);
	
private:
	TocvMatchTemplateMethod FMethod;
	Ocv::Core::Types_c::TIplImage *FIPLTemplate;
	Vcl::Graphics::TPicture* FTemplate;
	Ocv::Comp::Types::TOnOcvRect FOnMathTemplateRect;
	TocvDraw* FDrawRect;
	void __fastcall SetFIPLTemplate(const Ocv::Core::Types_c::pIplImage Value);
	Ocv::Core::Types_c::pIplImage __fastcall GetIPLTemplate(void);
	void __fastcall TemplateOnChange(System::TObject* Sender);
	
public:
	__fastcall virtual TocvMatchTemplate(System::Classes::TPersistent* AOwner);
	__fastcall virtual ~TocvMatchTemplate(void);
	virtual bool __fastcall DoTransform(const Ocv::Comp::Types::_di_IocvImage Source, /* out */ Ocv::Comp::Types::_di_IocvImage &Destanation);
	__property Ocv::Core::Types_c::pIplImage IPLTemplate = {read=GetIPLTemplate, write=SetFIPLTemplate};
	
__published:
	__property TocvMatchTemplateMethod Method = {read=FMethod, write=FMethod, default=5};
	__property Vcl::Graphics::TPicture* Template = {read=FTemplate, write=FTemplate};
	__property TocvDraw* DrawRect = {read=FDrawRect, write=FDrawRect};
	__property Ocv::Comp::Types::TOnOcvRect OnMathTemplateRect = {read=FOnMathTemplateRect, write=FOnMathTemplateRect};
};


enum DECLSPEC_DENUM TocvMotionDetectCalcRectType : unsigned char { mdBoundingRect, mdMinAreaRect };

enum DECLSPEC_DENUM TocvContourApproximationMethods : unsigned char { CHAIN_CODE, CHAIN_APPROX_NONE, CHAIN_APPROX_SIMPLE, CHAIN_APPROX_TC89_L1, CHAIN_APPROX_TC89_KCOS, LINK_RUNS };

typedef TocvDrawColor TocvDrawMotionRect;

class PASCALIMPLEMENTATION TocvMotionDetect : public TocvCustomImageOperationWithNestedOperation
{
	typedef TocvCustomImageOperationWithNestedOperation inherited;
	
protected:
	virtual void __fastcall AssignTo(System::Classes::TPersistent* Dest);
	virtual TocvImageOperationClass __fastcall GetPropertiesClass(void);
	
private:
	TocvMotionDetectCalcRectType FCalcRectType;
	Ocv::Comp::Types::_di_IocvImage FPrevFrame;
	TocvSmoothOperations FSmoothOperation;
	TocvDrawColor* FDrawMotionRect;
	Ocv::Comp::Types::TOnOcvRects FOnMotion;
	Ocv::Core::Types_c::TCvSeq *FContours;
	
public:
	__fastcall virtual TocvMotionDetect(System::Classes::TPersistent* AOwner);
	__fastcall virtual ~TocvMotionDetect(void);
	virtual bool __fastcall DoTransform(const Ocv::Comp::Types::_di_IocvImage Source, /* out */ Ocv::Comp::Types::_di_IocvImage &Destanation);
	__property Ocv::Core::Types_c::pCvSeq MotionRects = {read=FContours};
	
__published:
	__property bool RemoveSmallObject = {read=GetBoolParam, write=SetBoolParam, index=0, nodefault};
	__property int MinObjectSize = {read=GetIntParam, write=SetIntParam, index=0, nodefault};
	__property TocvMotionDetectCalcRectType CalcRectType = {read=FCalcRectType, write=FCalcRectType, default=0};
	__property TocvSmoothOperations Smooth = {read=FSmoothOperation, write=FSmoothOperation, default=1};
	__property TocvCustomImageOperation* Threshold = {read=GetProperties, write=SetProperties};
	__property TocvDrawColor* DrawMotionRect = {read=FDrawMotionRect, write=FDrawMotionRect};
	__property Ocv::Comp::Types::TOnOcvRects OnMotion = {read=FOnMotion, write=FOnMotion};
	__property bool NotifyOnlyWhenFound = {read=GetBoolParam, write=SetBoolParam, index=1, nodefault};
};


enum DECLSPEC_DENUM TocvHoughTransform : unsigned char { HOUGH_STANDARD, HOUGH_PROBABILISTIC, HOUGH_MULTI_SCALE, HOUGH_GRADIENT };

typedef TocvDrawColor TocvDrawHoughCircles;

class PASCALIMPLEMENTATION TocvHoughCirclesSmooth : public System::Classes::TPersistent
{
	typedef System::Classes::TPersistent inherited;
	
protected:
	virtual void __fastcall AssignTo(System::Classes::TPersistent* Dest);
	
private:
	TocvSmoothOperations FSmoothOperation;
	double Fsigma1;
	double Fsigma2;
	int Fsize1;
	int Fsize2;
	bool FEnabled;
	
public:
	__fastcall TocvHoughCirclesSmooth(void);
	
__published:
	__property double sigma1 = {read=Fsigma1, write=Fsigma1};
	__property double sigma2 = {read=Fsigma2, write=Fsigma2};
	__property int size1 = {read=Fsize1, write=Fsize1, default=0};
	__property int size2 = {read=Fsize2, write=Fsize2, default=0};
	__property TocvSmoothOperations SmoothType = {read=FSmoothOperation, write=FSmoothOperation, default=2};
	__property bool Enabled = {read=FEnabled, write=FEnabled, default=1};
public:
	/* TPersistent.Destroy */ inline __fastcall virtual ~TocvHoughCirclesSmooth(void) { }
	
};


class PASCALIMPLEMENTATION TocvHoughCircles : public TocvCustomImageOperation
{
	typedef TocvCustomImageOperation inherited;
	
protected:
	virtual void __fastcall AssignTo(System::Classes::TPersistent* Dest);
	
private:
	TocvHoughTransform FHoughTransform;
	TocvDrawColor* FDrawCircle;
	Ocv::Comp::Types::TOnOcvCircles FOnCircles;
	TocvHoughCirclesSmooth* FSmooth;
	
public:
	__fastcall virtual TocvHoughCircles(System::Classes::TPersistent* AOwner);
	__fastcall virtual ~TocvHoughCircles(void);
	virtual bool __fastcall DoTransform(const Ocv::Comp::Types::_di_IocvImage Source, /* out */ Ocv::Comp::Types::_di_IocvImage &Destanation);
	
__published:
	__property TocvHoughTransform Method = {read=FHoughTransform, write=FHoughTransform, default=3};
	__property double InverseRatio = {read=GetFloatParam, write=SetFloatParam, index=0};
	__property double MinDist = {read=GetFloatParam, write=SetFloatParam, index=1};
	__property double Param1 = {read=GetFloatParam, write=SetFloatParam, index=2};
	__property double Param2 = {read=GetFloatParam, write=SetFloatParam, index=3};
	__property int MinRadius = {read=GetIntParam, write=SetIntParam, index=0, nodefault};
	__property int MaxRadius = {read=GetIntParam, write=SetIntParam, index=1, nodefault};
	__property TocvDrawColor* DrawCircle = {read=FDrawCircle, write=FDrawCircle};
	__property Ocv::Comp::Types::TOnOcvCircles OnCircles = {read=FOnCircles, write=FOnCircles};
	__property bool NotifyOnlyWhenFound = {read=GetBoolParam, write=SetBoolParam, index=0, nodefault};
	__property TocvHoughCirclesSmooth* Smooth = {read=FSmooth, write=FSmooth};
};


class PASCALIMPLEMENTATION TocvHoughLinesCanny : public System::Classes::TPersistent
{
	typedef System::Classes::TPersistent inherited;
	
protected:
	virtual void __fastcall AssignTo(System::Classes::TPersistent* Dest);
	
private:
	double FThreshold1;
	double FThreshold2;
	int FApertureSize;
	
public:
	__fastcall TocvHoughLinesCanny(void);
	
__published:
	__property double Threshold1 = {read=FThreshold1, write=FThreshold1};
	__property double Threshold2 = {read=FThreshold2, write=FThreshold2};
	__property int ApertureSize = {read=FApertureSize, write=FApertureSize, default=3};
public:
	/* TPersistent.Destroy */ inline __fastcall virtual ~TocvHoughLinesCanny(void) { }
	
};


typedef TocvDrawColor TocvDrawHoughLines;

class PASCALIMPLEMENTATION TocvHoughLines : public TocvCustomImageOperation
{
	typedef TocvCustomImageOperation inherited;
	
protected:
	virtual void __fastcall AssignTo(System::Classes::TPersistent* Dest);
	
private:
	TocvHoughTransform FHoughTransform;
	TocvHoughLinesCanny* FCanny;
	Ocv::Comp::Types::TOnOcvLines FOnLines;
	TocvDrawColor* FDrawLines;
	
public:
	__fastcall virtual TocvHoughLines(System::Classes::TPersistent* AOwner);
	__fastcall virtual ~TocvHoughLines(void);
	virtual bool __fastcall DoTransform(const Ocv::Comp::Types::_di_IocvImage Source, /* out */ Ocv::Comp::Types::_di_IocvImage &Destanation);
	
__published:
	__property TocvHoughTransform Method = {read=FHoughTransform, write=FHoughTransform, default=1};
	__property double Rho = {read=GetFloatParam, write=SetFloatParam, index=0};
	__property double Theta = {read=GetFloatParam, write=SetFloatParam, index=1};
	__property double Param1 = {read=GetFloatParam, write=SetFloatParam, index=2};
	__property double Param2 = {read=GetFloatParam, write=SetFloatParam, index=3};
	__property int Threshold = {read=GetIntParam, write=SetIntParam, index=0, nodefault};
	__property TocvHoughLinesCanny* Canny = {read=FCanny, write=FCanny};
	__property Ocv::Comp::Types::TOnOcvLines OnLines = {read=FOnLines, write=FOnLines};
	__property TocvDrawColor* DrawLines = {read=FDrawLines, write=FDrawLines};
	__property bool NotifyOnlyWhenFound = {read=GetBoolParam, write=SetBoolParam, index=0, nodefault};
};


#pragma pack(push,4)
class PASCALIMPLEMENTATION TocvHaarCascadeDraw : public TocvDraw
{
	typedef TocvDraw inherited;
	
__published:
	__property Color = {default=32768};
	__property Shift = {default=0};
public:
	/* TocvDraw.Create */ inline __fastcall TocvHaarCascadeDraw(System::Classes::TPersistent* AOwner) : TocvDraw(AOwner) { }
	/* TocvDraw.Destroy */ inline __fastcall virtual ~TocvHaarCascadeDraw(void) { }
	
};

#pragma pack(pop)

class PASCALIMPLEMENTATION TocvHaarCascade : public TocvCustomImageOperation
{
	typedef TocvCustomImageOperation inherited;
	
private:
	Ocv::Comp::Types::TocvHaarCascadeType FHaarCascade;
	System::Syncobjs::TCriticalSection* FLockFrontalFaceChange;
	Ocv::Objdetect_c::TCvHaarClassifierCascade *FCascade;
	TocvPoint2D32i* FMinSize;
	TocvPoint2D32i* FMaxSize;
	TocvHaarCascadeDraw* FDrawHaarCascade;
	Ocv::Comp::Types::TocvHaarCascadeFlagSet FCascadeFlags;
	Ocv::Comp::Types::TOnOcvHaarCascade FOnHaarCascade;
	System::Sysutils::TFileName FCustomHaarCascade;
	System::DynamicArray<Ocv::Comp::Types::TocvRect> FHaarRects;
	void __fastcall SetHaarCascade(const Ocv::Comp::Types::TocvHaarCascadeType Value);
	void __fastcall ReleaseCascade(void);
	void __fastcall SetCustomHaarCascade(const System::Sysutils::TFileName Value);
	void __fastcall DoLoadHaarCascade(const System::UnicodeString FileName);
	
protected:
	Ocv::Comp::Types::_di_IocvImage FPrevFrame;
	
public:
	__fastcall virtual TocvHaarCascade(System::Classes::TPersistent* AOwner);
	__fastcall virtual ~TocvHaarCascade(void);
	virtual bool __fastcall DoTransform(const Ocv::Comp::Types::_di_IocvImage Source, /* out */ Ocv::Comp::Types::_di_IocvImage &Destanation);
	__property System::DynamicArray<Ocv::Comp::Types::TocvRect> HaarRects = {read=FHaarRects};
	
__published:
	__property System::Sysutils::TFileName CustomHaarCascade = {read=FCustomHaarCascade, write=SetCustomHaarCascade};
	__property Ocv::Comp::Types::TocvHaarCascadeType HaarCascade = {read=FHaarCascade, write=SetHaarCascade, default=2};
	__property bool Equalize = {read=GetBoolParam, write=SetBoolParam, index=0, nodefault};
	__property double Scale = {read=GetFloatParam, write=SetFloatParam, index=0};
	__property int MinNeighbors = {read=GetIntParam, write=SetIntParam, index=0, nodefault};
	__property TocvPoint2D32i* MinSize = {read=FMinSize, write=FMinSize};
	__property TocvPoint2D32i* MaxSize = {read=FMaxSize, write=FMaxSize};
	__property TocvHaarCascadeDraw* DrawHaarCascade = {read=FDrawHaarCascade, write=FDrawHaarCascade};
	__property Ocv::Comp::Types::TocvHaarCascadeFlagSet CascadeFlags = {read=FCascadeFlags, write=FCascadeFlags, default=0};
	__property Ocv::Comp::Types::TOnOcvHaarCascade OnHaarCascade = {read=FOnHaarCascade, write=FOnHaarCascade};
	__property bool NotifyOnlyWhenFound = {read=GetBoolParam, write=SetBoolParam, index=1, nodefault};
};


enum DECLSPEC_DENUM TocvEditorOperation : unsigned char { eopNone, eopSature, eopExpo, eopHue, eopTemperature, eopWhite, eopShadow, eopContrast, eopClarity };

class PASCALIMPLEMENTATION TocvEditor : public TocvCustomImageOperation
{
	typedef TocvCustomImageOperation inherited;
	
private:
	int FStep;
	TocvEditorOperation FEditorOperation;
	
public:
	__fastcall virtual TocvEditor(System::Classes::TPersistent* AOwner);
	__fastcall virtual ~TocvEditor(void);
	virtual bool __fastcall DoTransform(const Ocv::Comp::Types::_di_IocvImage Source, /* out */ Ocv::Comp::Types::_di_IocvImage &Destanation);
	
__published:
	__property int Step = {read=FStep, write=FStep, nodefault};
	__property TocvEditorOperation EditorOperation = {read=FEditorOperation, write=FEditorOperation, nodefault};
};


#pragma pack(push,4)
class PASCALIMPLEMENTATION TocvContourDraw : public TocvDraw
{
	typedef TocvDraw inherited;
	
protected:
	virtual void __fastcall AssignTo(System::Classes::TPersistent* Dest);
	
private:
	System::Uitypes::TColor FHoleColor;
	int FMaxLevel;
	
public:
	__fastcall TocvContourDraw(System::Classes::TPersistent* AOwner);
	
__published:
	__property System::Uitypes::TColor ExternalColor = {read=FColor, write=FColor, default=32768};
	__property System::Uitypes::TColor HoleColor = {read=FHoleColor, write=FHoleColor, default=255};
	__property int MaxLevel = {read=FMaxLevel, write=FMaxLevel, default=2};
public:
	/* TocvDraw.Destroy */ inline __fastcall virtual ~TocvContourDraw(void) { }
	
};

#pragma pack(pop)

enum DECLSPEC_DENUM TocvContourRetrievalModes : unsigned char { RETR_EXTERNAL, RETR_LIST, RETR_CCOMP, RETR_TREE, RETR_FLOODFILL };

class PASCALIMPLEMENTATION TocvContourApprox : public System::Classes::TPersistent
{
	typedef System::Classes::TPersistent inherited;
	
protected:
	virtual void __fastcall AssignTo(System::Classes::TPersistent* Dest);
	DYNAMIC System::Classes::TPersistent* __fastcall GetOwner(void);
	
private:
	System::Classes::TPersistent* FOwner;
	bool FEnabled;
	bool FRecursive;
	double FEps;
	
public:
	__fastcall TocvContourApprox(System::Classes::TPersistent* AOwner);
	
__published:
	__property bool Enabled = {read=FEnabled, write=FEnabled, default=1};
	__property double Eps = {read=FEps, write=FEps};
	__property bool Recursive = {read=FRecursive, write=FRecursive, default=1};
public:
	/* TPersistent.Destroy */ inline __fastcall virtual ~TocvContourApprox(void) { }
	
};


class PASCALIMPLEMENTATION TocvContoursOperation : public TocvCustomImageOperationWithNestedOperation
{
	typedef TocvCustomImageOperationWithNestedOperation inherited;
	
private:
	TocvContourRetrievalModes FRetrievalMode;
	TocvContourApproximationMethods FApproximationMethod;
	TocvPoint2D32i* FOffset;
	TocvContourDraw* FContourDraw;
	TocvContourApprox* FApprox;
	Ocv::Comp::Types::TOnOcvContour FOnContour;
	Ocv::Core::Types_c::TCvSeq *FContours;
	void __fastcall DoNotifyContours(const Ocv::Comp::Types::_di_IocvImage Image, const int ContourCount, const Ocv::Core::Types_c::pCvSeq Contours);
	
public:
	__fastcall virtual TocvContoursOperation(System::Classes::TPersistent* AOwner);
	__fastcall virtual ~TocvContoursOperation(void);
	virtual bool __fastcall DoTransform(const Ocv::Comp::Types::_di_IocvImage Source, /* out */ Ocv::Comp::Types::_di_IocvImage &Destanation);
	__property Ocv::Core::Types_c::pCvSeq Contours = {read=FContours};
	
__published:
	__property TocvCustomImageOperation* Preprocessing = {read=GetProperties, write=SetProperties};
	__property TocvContourRetrievalModes RetrievalMode = {read=FRetrievalMode, write=FRetrievalMode, default=1};
	__property TocvContourApproximationMethods ApproximationMethod = {read=FApproximationMethod, write=FApproximationMethod, default=2};
	__property TocvPoint2D32i* Offset = {read=FOffset, write=FOffset};
	__property int MinArea = {read=GetIntParam, write=SetIntParam, index=0, nodefault};
	__property TocvContourDraw* ContourDraw = {read=FContourDraw, write=FContourDraw};
	__property TocvContourApprox* ApproxPoly = {read=FApprox, write=FApprox};
	__property Ocv::Comp::Types::TOnOcvContour OnContour = {read=FOnContour, write=FOnContour};
};


class PASCALIMPLEMENTATION TocvImageOperationCollectionItem : public System::Classes::TCollectionItem
{
	typedef System::Classes::TCollectionItem inherited;
	
private:
	System::Syncobjs::TCriticalSection* CS;
	TocvCustomImageOperation* FOperation;
	TocvImageOperationClass FOperationClass;
	System::Classes::TCollection* FOwner;
	Ocv::Comp::Types::TOnOcvNotify FOnAfterTransform;
	Ocv::Comp::Types::TOnOcvBeforeTransform FOnBeforeTransform;
	bool __fastcall LockTransform(void);
	void __fastcall UnlockTransform(void);
	void __fastcall CreateProperties(void);
	void __fastcall DestroyProperties(void);
	void __fastcall RecreateProperties(void);
	System::UnicodeString __fastcall GetPropertiesClassName(void);
	void __fastcall SetProperties(TocvCustomImageOperation* const Value);
	void __fastcall SetPropertiesClass(TocvImageOperationClass Value);
	void __fastcall SetPropertiesClassName(const System::UnicodeString Value);
	
protected:
	TocvCustomImageOperation* __fastcall GetProperties(void);
	TocvImageOperationClass __fastcall GetPropertiesClass(void);
	virtual System::UnicodeString __fastcall GetDisplayName(void);
	DYNAMIC System::Classes::TPersistent* __fastcall GetOwner(void);
	HRESULT __stdcall QueryInterface(const GUID &IID, /* out */ void *Obj);
	int __stdcall _AddRef(void);
	int __stdcall _Release(void);
	
public:
	__fastcall virtual TocvImageOperationCollectionItem(System::Classes::TCollection* Collection);
	__fastcall virtual ~TocvImageOperationCollectionItem(void);
	DYNAMIC System::UnicodeString __fastcall GetNamePath(void);
	virtual void __fastcall Assign(System::Classes::TPersistent* Source);
	virtual bool __fastcall DoTransform(const Ocv::Comp::Types::_di_IocvImage Source, /* out */ Ocv::Comp::Types::_di_IocvImage &Destanation);
	__property TocvImageOperationClass OperationClass = {read=GetPropertiesClass, write=SetPropertiesClass};
	
__published:
	__property System::UnicodeString OperationClassName = {read=GetPropertiesClassName, write=SetPropertiesClassName};
	__property TocvCustomImageOperation* Operation = {read=GetProperties, write=SetProperties};
	__property Ocv::Comp::Types::TOnOcvNotify OnAfterTransform = {read=FOnAfterTransform, write=FOnAfterTransform};
	__property Ocv::Comp::Types::TOnOcvBeforeTransform OnBeforeTransform = {read=FOnBeforeTransform, write=FOnBeforeTransform};
private:
	void *__IocvEditorPropertiesContainer;	// IocvEditorPropertiesContainer 
	
public:
	#if defined(MANAGED_INTERFACE_OPERATORS)
	// {418F88DD-E35D-4425-BF24-E753E83D35D6}
	operator _di_IocvEditorPropertiesContainer()
	{
		_di_IocvEditorPropertiesContainer intf;
		this->GetInterface(intf);
		return intf;
	}
	#else
	operator IocvEditorPropertiesContainer*(void) { return (IocvEditorPropertiesContainer*)&__IocvEditorPropertiesContainer; }
	#endif
	
};


class PASCALIMPLEMENTATION TocvImageOperationCollection : public System::Classes::TOwnedCollection
{
	typedef System::Classes::TOwnedCollection inherited;
	
protected:
	Ocv::Comp::Types::TOnOcvNotifyCollectionItem FOnBeforeEachOperation;
	Ocv::Comp::Types::TOnOcvNotifyCollectionItem FOnAfterEachOperation;
	
public:
	bool __fastcall Transform(const Ocv::Comp::Types::_di_IocvImage Source, /* out */ Ocv::Comp::Types::_di_IocvImage &Destanation);
public:
	/* TOwnedCollection.Create */ inline __fastcall TocvImageOperationCollection(System::Classes::TPersistent* AOwner, System::Classes::TCollectionItemClass ItemClass) : System::Classes::TOwnedCollection(AOwner, ItemClass) { }
	
public:
	/* TCollection.Destroy */ inline __fastcall virtual ~TocvImageOperationCollection(void) { }
	
};


class PASCALIMPLEMENTATION TocvImageOperation : public Ocv::Comp::Types::TocvDataSourceAndReceiver
{
	typedef Ocv::Comp::Types::TocvDataSourceAndReceiver inherited;
	
private:
	System::Syncobjs::TCriticalSection* CS;
	TocvCustomImageOperation* FOperation;
	TocvImageOperationClass FOperationClass;
	TocvImageOperationCollection* FOperations;
	bool FUseCollection;
	Ocv::Comp::Types::TOnOcvNotifyCollectionItem FOnAfterEachOperation;
	Ocv::Comp::Types::TOnOcvNotifyCollectionItem FOnBeforeEachOperation;
	bool FEnabled;
	bool __fastcall LockTransform(void);
	void __fastcall UnlockTransform(void);
	void __fastcall CreateProperties(void);
	void __fastcall DestroyProperties(void);
	void __fastcall RecreateProperties(void);
	System::UnicodeString __fastcall GetPropertiesClassName(void);
	void __fastcall SetProperties(TocvCustomImageOperation* const Value);
	void __fastcall SetPropertiesClass(TocvImageOperationClass Value);
	void __fastcall SetPropertiesClassName(const System::UnicodeString Value);
	void __fastcall SetUseCollection(const bool Value);
	void __fastcall SetOnAfterEachOperation(const Ocv::Comp::Types::TOnOcvNotifyCollectionItem Value);
	void __fastcall SetOnBeforeEachOperation(const Ocv::Comp::Types::TOnOcvNotifyCollectionItem Value);
	
protected:
	TocvCustomImageOperation* __fastcall GetProperties(void);
	TocvImageOperationClass __fastcall GetPropertiesClass(void);
	
public:
	__fastcall virtual TocvImageOperation(System::Classes::TComponent* AOwner);
	__fastcall virtual ~TocvImageOperation(void);
	virtual void __fastcall TakeImage(const Ocv::Comp::Types::_di_IocvImage IplImage);
	__property TocvImageOperationClass OperationClass = {read=GetPropertiesClass, write=SetPropertiesClass};
	
__published:
	__property System::UnicodeString OperationClassName = {read=GetPropertiesClassName, write=SetPropertiesClassName};
	__property TocvCustomImageOperation* Operation = {read=GetProperties, write=SetProperties};
	__property TocvImageOperationCollection* Operations = {read=FOperations, write=FOperations};
	__property bool OperationsEnabled = {read=FUseCollection, write=SetUseCollection, default=1};
	__property Ocv::Comp::Types::TOnOcvNotifyCollectionItem OnBeforeEachOperation = {read=FOnBeforeEachOperation, write=SetOnBeforeEachOperation};
	__property Ocv::Comp::Types::TOnOcvNotifyCollectionItem OnAfterEachOperation = {read=FOnAfterEachOperation, write=SetOnAfterEachOperation};
	__property bool Enabled = {read=FEnabled, write=FEnabled, default=1};
private:
	void *__IocvEditorPropertiesContainer;	// IocvEditorPropertiesContainer 
	
public:
	#if defined(MANAGED_INTERFACE_OPERATORS)
	// {418F88DD-E35D-4425-BF24-E753E83D35D6}
	operator _di_IocvEditorPropertiesContainer()
	{
		_di_IocvEditorPropertiesContainer intf;
		this->GetInterface(intf);
		return intf;
	}
	#else
	operator IocvEditorPropertiesContainer*(void) { return (IocvEditorPropertiesContainer*)&__IocvEditorPropertiesContainer; }
	#endif
	
};


class PASCALIMPLEMENTATION TRegisteredImageOperations : public System::Classes::TStringList
{
	typedef System::Classes::TStringList inherited;
	
public:
	TocvImageOperationClass __fastcall FindByClassName(const System::UnicodeString ClassName);
	TocvImageOperationClass __fastcall FindByName(const System::UnicodeString Name);
	System::UnicodeString __fastcall GetNameByClass(const System::TClass IOClass);
	void __fastcall RegisterIOClass(const System::TClass IOClass, const System::UnicodeString ClassName);
public:
	/* TStringList.Create */ inline __fastcall TRegisteredImageOperations(void)/* overload */ : System::Classes::TStringList() { }
	/* TStringList.Create */ inline __fastcall TRegisteredImageOperations(bool OwnsObjects)/* overload */ : System::Classes::TStringList(OwnsObjects) { }
	/* TStringList.Destroy */ inline __fastcall virtual ~TRegisteredImageOperations(void) { }
	
};


//-- var, const, procedure ---------------------------------------------------
extern DELPHI_PACKAGE TRegisteredImageOperations* __fastcall GetRegisteredImageOperations(void);
}	/* namespace Imageoperation */
}	/* namespace Comp */
}	/* namespace Ocv */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_OCV_COMP_IMAGEOPERATION)
using namespace Ocv::Comp::Imageoperation;
#endif
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_OCV_COMP)
using namespace Ocv::Comp;
#endif
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_OCV)
using namespace Ocv;
#endif
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// Ocv_Comp_ImageoperationHPP
